using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FoundationLib.AddIns.Constraints
{
	/// <summary>
	/// Provides an interface for visitable elements
	/// </summary>
	public interface IVisitable 
	{
		/// <summary>
		/// Gets or sets the value of the visitable element
		/// </summary>
		string Value
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the name of the visitable element
		/// </summary>
		string Name
		{
			get;
			set;
		}

		/// <summary>
		/// Accepts the given visitor
		/// </summary>
		/// <param name="visitor">The visitor performing work on the visitable
		/// element</param>
		void Accept(IVisitor visitor);
	}
}
